Some processors, for example, some network processors, may include highly parallel architectures. Accordingly, such processors may be well-suited for use with applications that take advantage of these parallel architectures. For example, a network application for packet processing may include, for example, receiving a packet, routing table look-up, and enqueueing of the packet. Such an application may be parallelized through pipelining and multi-threading transformations.
In implementing such a transformation, the data may typically be transmitted from stage to stage via a global resource (“pipe”, which may refer to one or more various data transmission channels). However, not all data transmitted from stage to stage may be necessary. As a result, unnecessary overhead may be incurred in transmitting data that are not needed.